import CryptoJS from 'crypto-js'
import { config } from './'

function s4() {
  return Math.floor((1 + Math.random()) * 0x10000)
    .toString(16)
    .substring(1)
}

export default {
  guid() {
    return s4() + s4() + '-' + s4() + '-' + s4() +
      '-' + s4() + '-' + s4() + s4()
  },
  // 通用接口`promise`错误处理
  onPromiseError(err) {
    console.error(`Got error`, err)
  },
  // 依赖`localStorage`
  accessEntry() {
    return {
      sid: localStorage.token,
    }
  },
  loadingToast(message = '正在提交...', duration = 10) {
    // Toast.loading(message, duration, () => {
    //   Toast.fail('提交失败！');
    // })
  },
  // aes 加密密码
  aesEncrypt(cipher) {
    var key = CryptoJS.enc.Utf8.parse(config.aesKey)
    var srcs = CryptoJS.enc.Utf8.parse(cipher)
    var encrypted = CryptoJS.AES.encrypt(
      srcs, key,
      { iv: config.aesIv, mode: CryptoJS.mode.CBC }
    )
    return encrypted.toString()
  },
}